package com.sicheng.lc.lc笔试.阿里篇;

/**
 * @author zsc
 * @version 1.0
 * @date 2022/4/8 10:03
 */
public class 数字查找和排序 {
    /**
     * 3、数字查找和排序-找出数组中重复最多的元素
     * nums =[1，2，3，1，2，3，4，3，3，5，3];
     * a、找出数组中重复最多的数字。b、重复最多的数字最先开始的位置。
     * c、重复最多的数字的数量。
     */

    public static void main(String[] args) {

        int[] nums = {1, 2, 3, 1, 2, 3, 4, 3, 3, 5, 3};
        find(nums);
        System.out.println(candidate);
        System.out.println(count);
        System.out.println(start);

    }

    private static int count;
    private static int candidate;
    private static int start;

    public static void find(int[] nums) {
        candidate = nums[0];
        count++;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] == candidate) {
                count++;
            } else if (count-- == 0) {
                candidate = nums[i];
                count = 1;
            }
        }

        count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (candidate == nums[i]) {
                count++;
                if (count == 1)
                    start = i;
            }
        }
    }

}
